package com.fortune.dao;

import com.fortune.dto.in.cProductPriceMgt.CProductPriceAddDto;
import com.fortune.dto.in.cProductPriceMgt.CProductPriceEditDto;
import com.fortune.dto.in.cProductPriceMgt.CProductPriceListDto;
import com.fortune.dto.in.producePriceManagement.EditPriceDealerDto;
import com.fortune.dto.in.producePriceManagement.ProduceDealerListDto;
import com.fortune.vo.cProductPriceMgt.CProductPrice;
import com.fortune.vo.producePriceManagement.ProductWholesalePriceList;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface DProductWholesalePriceDao {
    /**
     *经销商进货价格列表
     * @param companyId
     * @param produceDealerListDto
     * @return
     */
    List<ProductWholesalePriceList> queryDealerProduceInfo(@Param("companyId") String companyId, @Param("produceDealerListDto") ProduceDealerListDto produceDealerListDto);

    /**
     * 经销商进货价格列表个数
     * @param companyId
     * @param produceDealerListDto
     * @return
     */
    int queryDealerProduceInfoCount(@Param("companyId") String companyId, @Param("produceDealerListDto") ProduceDealerListDto produceDealerListDto);

    /**
     * 修改优惠价格
     * @param companyId
     * @param editPriceDealerDto
     * @return
     */
    int editPrice(String companyId,EditPriceDealerDto editPriceDealerDto);

    /**
     * 查找商品批 发价数据是否存在
     * @param companyId
     * @param editPriceDealerDto
     * @return
     */
    int queryInProduceIsExist(@Param("companyId") String companyId,@Param("editPriceDealerDto") EditPriceDealerDto editPriceDealerDto);

    /**
     * 删除商品批发价数据
     * @param companyId
     * @param editPriceDealerDto
     * @return
     */
    int deleteInProduce(@Param("companyId") String companyId,@Param("editPriceDealerDto") EditPriceDealerDto editPriceDealerDto);

    /**
     * 新增商品批发价数据
     * @param companyId
     * @param editPriceDealerDto
     * @return
     */
    int addInProduce(@Param("companyId") String companyId,@Param("editPriceDealerDto") EditPriceDealerDto editPriceDealerDto);

    /**
     * 修改
     * @param companyId
     * @param editPriceDealerDto
     * @return
     */
    int editProductPrice(@Param("companyId") String companyId, @Param("editPriceDealerDto" )EditPriceDealerDto editPriceDealerDto);

    /**
     * 新增商品统一批发价
     * @param companyId
     * @param dealerId
     * @param addDto
     * @return
     */
    int addProductSalePrice(@Param("companyId") String companyId,@Param("dealerId" )String dealerId, @Param("CProductPriceAddDto" )CProductPriceAddDto addDto);

    /**
     * 编辑商品统一批发价
     * @param companyId
     * @param dealerId
     * @param editDto
     * @return
     */
    int editProductSalePrice(@Param("companyId") String companyId, @Param("dealerId" )String dealerId, @Param("CProductPriceEditDto" )CProductPriceEditDto editDto);

    /**
     * 删除商品统一批发价
     * @param companyId
     * @param dealerId
     * @param productId
     * @return
     */
    int deleteProductSalePrice(@Param("companyId") String companyId, @Param("dealerId" )String dealerId, @Param("productId" )String productId);


    /**
     * 查询经销商对客户统一批发价列表
     * @param dealerId
     * @return
     */
    List<CProductPrice> findWholesale(@Param("dealerId") String dealerId,@Param("cProductPriceListDto") CProductPriceListDto cProductPriceListDto);

    /**
     * 查询经销商对客户统一批发价列表数量
     * @param dealerId
     * @return
     */
    int findWholesaleCount(String dealerId);

    /**
     * 查询该商品优惠批发价是否存在
     * @param companyId
     * @param editPriceDealerDto
     * @return
     */
    int queryProductWholesaleExist(@Param("companyId") String companyId,@Param("editPriceDealerDto") EditPriceDealerDto editPriceDealerDto);

    /**
     * 新增该商品优惠批发价
     * @param companyId
     * @param editPriceDealerDto
     * @return
     */
    int addProductWholesale(@Param("companyId") String companyId,@Param("editPriceDealerDto") EditPriceDealerDto editPriceDealerDto);
}
